Tweak EXIF reader to allow reads below sea level.
authorrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 22 Aug 2012 03:02:12 +0000 (03:02 +0000)
committerrobertlipe@gmail.com <robertlipe@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 22 Aug 2012 03:02:12 +0000 (03:02 +0000)
git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4189 f51c46e8-681c-474f-0cfe-069cfd0219fb

gpsbabel/exif.c

index 2876d4c4d3013a837f102eaf7f5b66c7aebda944..ae9640563e8bae5ff81f215801fb08d26d170b3f 100644 (file)
@@ -779,10 +779,21 @@ exif_waypt_from_exif_app(exif_app_t* app)
   }
 
   if (alt != unknown_alt) {
-    if (alt_ref != 0) {
+    double sign;
+    switch (alt_ref != 0) {
+    case 0:
+      sign = 1.0;
+      break;
+
+    case 1:
+      sign = -1.0;
+      break;
+
+    default:
       warning(MYNAME ": Invalid GPSAltitudeRef (%d)! Using 0 (= Sea level).\n", alt_ref);
+      sign = 1.0;
     }
-    wpt->altitude = alt;
+    wpt->altitude = sign * alt;
 #ifdef EXIF_DBG
     printf(MYNAME "-GPSAltitude =  %12.7f m\n", wpt->altitude);
 #endif